import Vue from 'vue'
import App from './App.vue'
import router from "@/router";
import store from "@/store";
import axios from 'axios';
import VueAxios from "vue-axios";
import qs from 'qs';
import '@/assets/Color.scss';
import '@/assets/Tag.scss';

// 使用axios插件
Vue.use(VueAxios, axios);

Vue.config.productionTip = false;

// 设置axios
// 开启session认证
axios.defaults.withCredentials = true;
// 设置默认url
axios.defaults.baseURL = 'http://localhost:8081';
// 解决post传输数据异常的问题
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.transformRequest = [function (data) {
    window.console.log('request', data);
    return qs.stringify(data);
}];

// 提交上述修改
Vue.prototype.$axios = axios;

// 简化store变量的访问
Vue.prototype.$vals = store.state;

new Vue({
    render: h => h(App),
    router,
    store
}).$mount('#app');

Vue.prototype.$then = function (res) {
    if (res.data.code !== undefined) {
        window.alert(res.data.content);
    } else {
        window.alert('服务错误！请稍后再试');
    }
};

// 重新登录
Vue.prototype.$reLogin = function () {
    // 清除全局用户信息
    store.commit('clearUser');
    // 发送退出请求
    axios.delete('/user');
    // 返回登录界面
    router.push('/login');
};

// 检验用户是否登录
Vue.prototype.$noLogin = function (ok, fail) {
    axios.get('/user')
        .then(res => {
            if (res.data.code !== 200) {
                // 清除全局用户信息
                this.$store.commit('clearUser');
                // 调用自定义方法
                if (fail)
                    fail();
            } else {
                // 调用自定义方法
                if (ok)
                    ok();
            }
        });
}





